package com.zatech.cgnci.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zatech.cgnci.project.dto.ContractInvoiceAddDTO;
import com.zatech.cgnci.project.dto.ContractInvoiceQueryDTO;
import com.zatech.cgnci.project.dto.ContractInvoiceUpdateDTO;
import com.zatech.cgnci.project.dto.ContractInvoiceUpmUpDTO;
import com.zatech.cgnci.project.entity.CgnciContractInvoiceDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zatech.cgnci.project.vo.*;

import java.util.List;

/**
 * <p>
 * 合约账单信息 服务类
 * </p>
 *
 * @author Generator
 * @since 2024-12-30
 */
public interface CgnciContractInvoiceService extends IService<CgnciContractInvoiceDO> {


    IPage<ContractInvoiceVO>  pageQuery(ContractInvoiceQueryDTO queryDTO);
    /**
     * 合约账单新增接口
     * @param addDTO
     */
    void addContractInvoice(ContractInvoiceAddDTO addDTO);

    ContractInvoiceDetailsVO getDetails(Long id, String invoiceNumber);

    /**
     * 合约账单更新接口
     * @param updateDTO
     */
    void updateContractInvoice(ContractInvoiceUpdateDTO updateDTO);

    /**
     * 合约账单更新UPM接口
     * @param updateDTO
     */
    void updateUpm(ContractInvoiceUpmUpDTO updateDTO);

    List<CgnciBusinessInsurancePageVO>  queryBusiness();


    ReinsuranceVO queryReinsurer(Long insuranceId);
    /**
     * 根据id删除合约账单
     * @param updateDTO
     */
    void delete(Long id,String invoiceNumber);
}
